UserDefaults.standard は使わないほうがいい
isowords/Sources/UserDefaultsClient/LiveKey.swift at 1013a872bc165838c83bd80f09c7b0aab199b6c5 · pointfreeco/isowords · GitHub を見ていて init(suiteName:) | Apple Developer Documentation の存在に気づいた。
アプリごとに Sandbox 化されているので、異なるアプリ同士でアクセスの競合が起きることはないが、フレームワーク・ライブラリがたまたま同じ key を利用していた場合は競合してしまうという問題があり、それを回避するために init(suiteName:)
を利用して全く新しいデータベースを作成してあげる。
その他参考
- Avoid using UserDefaults.standard
- ここで書きたかったことがより詳細にまとまっているので、忘れたらこの記事を見たほうがいい。